<template>
  <el-form ref="form" :model="user" :rules="rules" label-width="80px">
    <el-form-item label="用户名" prop="loginname">
      <el-input v-model="user.loginname" />
    </el-form-item>
    <el-form-item label="真实姓名" prop="realname">
      <el-input v-model="user.realname" maxlength="11" />
    </el-form-item>
    <el-form-item label="手机号码" prop="mobilephone">
      <el-input v-model="user.mobilephone" maxlength="50" />
    </el-form-item>
    <el-form-item label="性别">
      <el-radio-group v-model="user.sex">
        <el-radio label="0">女</el-radio>
        <el-radio label="1">男</el-radio>
      </el-radio-group>
    </el-form-item>
    <!-- <el-form-item label="状态">
      <el-switch v-model="userStatus"></el-switch>
    </el-form-item> -->
    <el-form-item label="角色">
      <el-select v-model="user.groupid" placeholder="权限角色" disabled>
        <el-option v-for="item in options" :key="item.groupid" :label="item.groupname" :value="item.groupid" :title="item.description"></el-option>
      </el-select>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" size="mini" @click="submit">保存</el-button>
      <el-button type="danger" size="mini" @click="close">关闭</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import { updateProfile } from "@/api/user";
import {getRoleGroup} from '@/api/rolegroup'

export default {
  props: {
    user: {
      type: Object,
    },
  },
  data() {
    return {
      // 表单校验
      rules: {
        loginname: [
          { required: true, message: "用户名不能为空", trigger: "blur" },
        ],
        // realname: [
        //   { required: true, message: "真实姓名不能为空", trigger: "blur" }
        // ],
        mobilephone: [
          { required: true, message: "手机号码不能为空", trigger: "blur" },
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur",
          },
        ],
      },
      options:[]
    };
  },
  computed:{
    // 采用中间status，防止更改user中的status中的变量为数字发生错误
    userStatus:{
      get:function(){
        // 获取原有的布尔值
        return !!+this.user.status
      },
      set:function(){
        // 更改boolean值
        this.user.status = !this.user.status
      }
    }
  },
  methods: {
    submit() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          // 布尔值转数字
          this.user.status = +this.userStatus
          updateProfile(this.user).then(res => {
             this.responseInterceptor(res);
            if(res.data.code==200){
              this.$message.success(res.data.msg);
            }
          });
        }
      });
    },
    close() {
      this.$router.push({ path: "/home" });
    },
  },
  mounted(){
    getRoleGroup().then(res=>{
     this.responseInterceptor(res);

     this.options = res.data.data.list
    })
  }
};
</script>
